#include<bits/stdc++.h>
using namespace std;
struct edge {
int n,nxt;
edge(int n,int nxt) {
this->n=n;
this->nxt=nxt;
}
edge() {}
} e[5050];
int head[5050],ecnt=-1;
void add(int from,int to) {
e[++ecnt]=edge(to,head[from]);
head[from]=ecnt;
}
int s[5050];
bool used[5050];
bool Find(int x) {
if(used[x])
return false;
used[x]=1;
for(int i=head[x]; ~i; i=e[i].nxt)
if(s[e[i].n]==-1||Find(s[e[i].n])) {
s[e[i].n]=x;
return true;
}
return false;
}
int a[5050],b[5050],c[5050];
int ans[5050];
int main() {
memset(head,-1,sizeof(head));
memset(s,-1,sizeof(s));
int n,m,q;
scanf("%d%d",&n,&m);
for(int i=1; i<=n; ++i)
scanf("%d",&a[i]);
for(int i=1; i<=n; ++i)
scanf("%d",&b[i]);
scanf("%d",&q);
for(int i=1; i<=q; ++i) {
scanf("%d",&c[i]);
used[c[i]]=1;
}
for(int i=1; i<=n; ++i)
if(!used[i])
add(a[i],b[i]);
int t=0;
for(int i=q; i>=1; --i) {
memset(used,0,sizeof(used));
while(Find(t)) {
++t;
memset(used,0,sizeof(used));
}
ans[i]=t;
add(a[c[i]],b[c[i]]);
}
for(int i=1; i<=q; ++i)
printf("%d\n",ans[i]);
return 0;
}
MSNSADM1 Football | MATCHES Playing with Matches |
HRDSEQ Hard Sequence | DRCHEF Doctor Chef |
559. Maximum Depth of N-ary Tree | 821. Shortest Distance to a Character |
1441. Build an Array With Stack Operations | 1356. Sort Integers by The Number of 1 Bits |
922. Sort Array By Parity II | 344. Reverse String |
1047. Remove All Adjacent Duplicates In String | 977. Squares of a Sorted Array |
852. Peak Index in a Mountain Array | 461. Hamming Distance |
1748. Sum of Unique Elements | 897. Increasing Order Search Tree |
905. Sort Array By Parity | 1351. Count Negative Numbers in a Sorted Matrix |
617. Merge Two Binary Trees | 1450. Number of Students Doing Homework at a Given Time |
700. Search in a Binary Search Tree | 590. N-ary Tree Postorder Traversal |
589. N-ary Tree Preorder Traversal | 1299. Replace Elements with Greatest Element on Right Side |
1768. Merge Strings Alternately | 561. Array Partition I |
1374. Generate a String With Characters That Have Odd Counts | 1822. Sign of the Product of an Array |
1464. Maximum Product of Two Elements in an Array | 1323. Maximum 69 Number |